package com.ruoyi.basebill.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * OMS销售退货单对象 t_oms_salereturnbill
 *
 * @author ptt
 * @date 2023-02-10
 */
public class OmsSalereturnbill extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 售后订单 */
    @Excel(name = "售后订单",needMerge = true)
    private String code;

    /** 来源系统 */
    @Excel(name = "来源系统",needMerge = true)
    private String srcsys;

    /** 销售订单号 */
    @Excel(name = "销售订单号",needMerge = true)
    private String refordercode;

    /** 来源平台 */
    @Excel(name = "来源上游平台",needMerge = true)
    private String sourceplatformcode;

    @Excel(name = "来源上游系统",needMerge = true)
    private String sourceordercode;

    /** 来源类型 */
    @Excel(name = "来源类型",needMerge = true)
    private String sourcetype;

    /** 事务类型编码 */
    @Excel(name = "事务类型编码",needMerge = true)
    private String transactiontype;

    /** 下单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd",needMerge = true)
    private Date tradecreatedat;

    /** 实际入库日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际入库日期", width = 30, dateFormat = "yyyy-MM-dd",needMerge = true)
    private Date closeat;

    /** 售后成本中心编码 */
    @Excel(name = "售后成本中心编码",needMerge = true)
    private String salescostcentercode;

    /** 售后成本中心名称 */
    @Excel(name = "售后成本中心名称",needMerge = true)
    private String salescostcentername;

    /** 售后单位编码（退货客户） */
    @Excel(name = "售后单位编码（退货客户）",needMerge = true)
    private String customercode;

    /** 售后单位名称 */
    @Excel(name = "售后单位名称",needMerge = true)
    private String customername;

    /** 退出仓库编码 */
    @Excel(name = "退出仓库编码",needMerge = true)
    private String exitwarehousecode;

    /** 退出仓库名称 */
    @Excel(name = "退出仓库名称",needMerge = true)
    private String exitwarehousename;

    /** 开票组织编码 */
    @Excel(name = "开票组织编码",needMerge = true)
    private String invoicecode;

    /** 开票组织名称 */
    @Excel(name = "开票组织名称",needMerge = true)
    private String invoicename;

    /** 备注 */
    @Excel(name = "备注",needMerge = true)
    private String hasnote;

    /** 币别 */
    @Excel(name = "币别",needMerge = true)
    private String currency;

    /** 汇率 */
    @Excel(name = "汇率",needMerge = true)
    private BigDecimal exchangerate;

    /** 创建时间 */
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd",needMerge = true)
    private Date createtime;

    /** 是否生成下游单据 */
    @Excel(name = "是否生成下游单据",needMerge = true)
    private Long iscreatebill;

    /** 失败原因 */
    @Excel(name = "失败原因",needMerge = true)
    private String reason;

    @Excel(name = "是否生成外部下游单据",needMerge = true)
    private Long iscreateoutbill;

    @Excel(name = "外部销售单失败原因",needMerge = true)
    private String outreason;

    @Excel(name = "退货类型",needMerge = true)
    private String returntype;

    /** OMS销售退货单分录信息 */
    @Excel(name = "销售退货分录")
    private List<OmsSalereturnbillentry> omsSalereturnbillentryList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCode(String code)
    {
        this.code = code;
    }

    public String getCode()
    {
        return code;
    }

    public String getSrcsys() {
        return srcsys;
    }

    public void setSrcsys(String srcsys) {
        this.srcsys = srcsys;
    }

    public void setRefordercode(String refordercode)
    {
        this.refordercode = refordercode;
    }

    public String getRefordercode()
    {
        return refordercode;
    }
    public void setSourceplatformcode(String sourceplatformcode)
    {
        this.sourceplatformcode = sourceplatformcode;
    }

    public String getSourceplatformcode()
    {
        return sourceplatformcode;
    }

    public String getSourceordercode() {
        return sourceordercode;
    }

    public void setSourceordercode(String sourceordercode) {
        this.sourceordercode = sourceordercode;
    }

    public void setSourcetype(String sourcetype)
    {
        this.sourcetype = sourcetype;
    }

    public String getSourcetype()
    {
        return sourcetype;
    }
    public void setTransactiontype(String transactiontype)
    {
        this.transactiontype = transactiontype;
    }

    public String getTransactiontype()
    {
        return transactiontype;
    }
    public void setTradecreatedat(Date tradecreatedat)
    {
        this.tradecreatedat = tradecreatedat;
    }

    public Date getTradecreatedat()
    {
        return tradecreatedat;
    }

    public Date getCloseat() {
        return closeat;
    }

    public void setCloseat(Date closeat) {
        this.closeat = closeat;
    }

    public void setSalescostcentercode(String salescostcentercode)
    {
        this.salescostcentercode = salescostcentercode;
    }

    public String getSalescostcentercode()
    {
        return salescostcentercode;
    }
    public void setSalescostcentername(String salescostcentername)
    {
        this.salescostcentername = salescostcentername;
    }

    public String getSalescostcentername()
    {
        return salescostcentername;
    }
    public void setCustomercode(String customercode)
    {
        this.customercode = customercode;
    }

    public String getCustomercode()
    {
        return customercode;
    }
    public void setCustomername(String customername)
    {
        this.customername = customername;
    }

    public String getCustomername()
    {
        return customername;
    }
    public void setExitwarehousecode(String exitwarehousecode)
    {
        this.exitwarehousecode = exitwarehousecode;
    }

    public String getExitwarehousecode()
    {
        return exitwarehousecode;
    }
    public void setExitwarehousename(String exitwarehousename)
    {
        this.exitwarehousename = exitwarehousename;
    }

    public String getExitwarehousename()
    {
        return exitwarehousename;
    }
    public void setInvoicecode(String invoicecode)
    {
        this.invoicecode = invoicecode;
    }

    public String getInvoicecode()
    {
        return invoicecode;
    }
    public void setInvoicename(String invoicename)
    {
        this.invoicename = invoicename;
    }

    public String getInvoicename()
    {
        return invoicename;
    }
    public void setHasnote(String hasnote)
    {
        this.hasnote = hasnote;
    }

    public String getHasnote()
    {
        return hasnote;
    }
    public void setCurrency(String currency)
    {
        this.currency = currency;
    }

    public String getCurrency()
    {
        return currency;
    }
    public void setExchangerate(BigDecimal exchangerate)
    {
        this.exchangerate = exchangerate;
    }

    public Date getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    public BigDecimal getExchangerate()
    {
        return exchangerate;
    }
    public void setIscreatebill(Long iscreatebill)
    {
        this.iscreatebill = iscreatebill;
    }

    public Long getIscreatebill()
    {
        return iscreatebill;
    }
    public void setReason(String reason)
    {
        this.reason = reason;
    }

    public String getReason()
    {
        return reason;
    }

    public Long getIscreateoutbill() {
        return iscreateoutbill;
    }

    public void setIscreateoutbill(Long iscreateoutbill) {
        this.iscreateoutbill = iscreateoutbill;
    }

    public String getOutreason() {
        return outreason;
    }

    public void setOutreason(String outreason) {
        this.outreason = outreason;
    }


    public String getReturntype() {
        return returntype;
    }

    public void setReturntype(String returntype) {
        this.returntype = returntype;
    }

    public List<OmsSalereturnbillentry> getOmsSalereturnbillentryList()
    {
        return omsSalereturnbillentryList;
    }

    public void setOmsSalereturnbillentryList(List<OmsSalereturnbillentry> omsSalereturnbillentryList)
    {
        this.omsSalereturnbillentryList = omsSalereturnbillentryList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("srcsys", getSrcsys())
            .append("refordercode", getRefordercode())
            .append("sourceplatformcode", getSourceplatformcode())
            .append("sourcetype", getSourcetype())
            .append("transactiontype", getTransactiontype())
            .append("tradecreatedat", getTradecreatedat())
            .append("closeat", getCloseat())
            .append("salescostcentercode", getSalescostcentercode())
            .append("salescostcentername", getSalescostcentername())
            .append("customercode", getCustomercode())
            .append("customername", getCustomername())
            .append("exitwarehousecode", getExitwarehousecode())
            .append("exitwarehousename", getExitwarehousename())
            .append("invoicecode", getInvoicecode())
            .append("invoicename", getInvoicename())
            .append("hasnote", getHasnote())
            .append("currency", getCurrency())
            .append("exchangerate", getExchangerate())
            .append("createtime", getCreatetime())
            .append("iscreatebill", getIscreatebill())
            .append("reason", getReason())
                .append("iscreateoutbill", getIscreateoutbill())
                .append("outreason", getOutreason())
                .append("returntype", getReturntype())
            .append("omsSalereturnbillentryList", getOmsSalereturnbillentryList())
            .toString();
    }
}
